package com.zenithmind.task.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 任务附件VO类
 * 
 * @author ZenithMind Team
 * @since 2025-01-09
 */
@Data
public class TaskAttachmentVO {

    /**
     * 附件ID
     */
    private String id;

    /**
     * 任务ID
     */
    private String taskId;

    /**
     * 评论ID
     */
    private String commentId;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 原始文件名
     */
    private String originalName;

    /**
     * 文件URL
     */
    private String fileUrl;

    /**
     * 文件大小（字节）
     */
    private Long fileSize;

    /**
     * 文件大小文本
     */
    private String fileSizeText;

    /**
     * 文件类型
     */
    private String fileType;

    /**
     * 文件扩展名
     */
    private String fileExtension;

    /**
     * 缩略图URL
     */
    private String thumbnailUrl;

    /**
     * 上传者ID
     */
    private String uploaderId;

    /**
     * 上传者名称
     */
    private String uploaderName;

    /**
     * 上传者头像
     */
    private String uploaderAvatar;

    /**
     * 附件类型：1-任务附件，2-评论附件
     */
    private Integer attachmentType;

    /**
     * 附件类型文本
     */
    private String attachmentTypeText;

    /**
     * 下载次数
     */
    private Integer downloadCount;

    /**
     * 是否公开
     */
    private Boolean isPublic;

    /**
     * 文件描述
     */
    private String description;

    /**
     * 是否可下载
     */
    private Boolean canDownload;

    /**
     * 是否可编辑
     */
    private Boolean canEdit;

    /**
     * 是否可删除
     */
    private Boolean canDelete;

    /**
     * 是否为图片
     */
    private Boolean isImage;

    /**
     * 是否为文档
     */
    private Boolean isDocument;

    /**
     * 是否为视频
     */
    private Boolean isVideo;

    /**
     * 是否为音频
     */
    private Boolean isAudio;

    /**
     * 文件图标
     */
    private String fileIcon;

    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
}
